/*** Created Time: 2022年5月14日 16:09:09 ***/
/*** Author: Eric                        ***/

#include <onix/debug.h>
#include <onix/stdarg.h>
#include <onix/stdio.h>
#include <onix/printk.h>

static char buf[1024];

// 调试函数，调用vsprintf处理可变参数，调用printk函数实现输出
// @file : 在DEBUGK宏中采用__BASE_FILE__作为输入，显示入口点函数所在文件
// @line : 在DEBUGK宏中采用__LINE__作为输入，显示本行语句所在源文件中的位置信息
void debugk(char *file, int line, const char *fmt, ...)
{
    va_list args;
    va_start(args, fmt);
    vsprintf(buf, fmt, args);   // 处理可变参数，并将结果存储在buf中
    va_end(args);

    // 实现输出
    printk("[%s] [%d] %s", file, line, buf);
}